package com.xjrsoft.module.customerTwo.AppManage.monthkpi.service.impl;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.xjrsoft.core.tool.utils.StringUtil;
import com.xjrsoft.module.customerTwo.AppManage.monthkpi.entity.DwMonthKpiData;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.xjrsoft.core.tool.utils.CollectionUtil;
import java.util.ArrayList;
import com.xjrsoft.module.customerTwo.AppManage.monthkpi.dto.DwMonthKpiDataListDto;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.xjrsoft.common.page.ConventPage;
import com.xjrsoft.common.page.PageOutput;
import java.util.List;
import com.xjrsoft.module.customerTwo.AppManage.monthkpi.mapper.DwMonthKpiDataMapper;
import com.xjrsoft.module.customerTwo.AppManage.monthkpi.service.IDwMonthKpiDataService;
import com.xjrsoft.core.mp.base.BaseService;
import com.xjrsoft.core.tool.utils.Func;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.metadata.IPage;

/**
 *  服务实现类
 *
 * @author lisen
 * @since 2024-05-31
 */
@Service
@AllArgsConstructor
public class DwMonthKpiDataServiceImpl extends BaseService<DwMonthKpiDataMapper, DwMonthKpiData> implements IDwMonthKpiDataService {


	@Override
	public IPage<DwMonthKpiData> getPageList(DwMonthKpiDataListDto pageListDto) {
		Wrapper<DwMonthKpiData> wrapper = Wrappers.<DwMonthKpiData>query().lambda()
				.like(!StringUtil.isEmpty(pageListDto.getCompany_id()), DwMonthKpiData::getCompanyId, pageListDto.getCompany_id())
				.like(!StringUtil.isEmpty(pageListDto.getCl_year()), DwMonthKpiData::getClYear, pageListDto.getCl_year())
				.like(!StringUtil.isEmpty(pageListDto.getCl_month()), DwMonthKpiData::getClMonth, pageListDto.getCl_month())
				.eq(!StringUtil.isEmpty(pageListDto.getPurchase_order_count()), DwMonthKpiData::getPurchaseOrderCount, pageListDto.getPurchase_order_count())
				.eq(!StringUtil.isEmpty(pageListDto.getOrder_number()), DwMonthKpiData::getOrderNumber, pageListDto.getOrder_number())
				.eq(!StringUtil.isEmpty(pageListDto.getProduction_number()), DwMonthKpiData::getProductionNumber, pageListDto.getProduction_number())
				.ge(!StringUtil.isEmpty(pageListDto.getUpdate_date_Start()), DwMonthKpiData::getUpdateDate, pageListDto.getUpdate_date_Start())
				.le(!StringUtil.isEmpty(pageListDto.getUpdate_date_End()), DwMonthKpiData::getUpdateDate, pageListDto.getUpdate_date_End())
				.eq(!StringUtil.isEmpty(pageListDto.getLead_time()), DwMonthKpiData::getLeadTime, pageListDto.getLead_time())
				.eq(!StringUtil.isEmpty(pageListDto.getBlack_order()), DwMonthKpiData::getBlackOrder, pageListDto.getBlack_order())
				.eq(!StringUtil.isEmpty(pageListDto.getW_floor_eff()), DwMonthKpiData::getWFloorEff, pageListDto.getW_floor_eff())
				.eq(!StringUtil.isEmpty(pageListDto.getCl_itr()), DwMonthKpiData::getClItr, pageListDto.getCl_itr())
				.eq(!StringUtil.isEmpty(pageListDto.getCl_ppcr()), DwMonthKpiData::getClPpcr, pageListDto.getCl_ppcr())
				.eq(!StringUtil.isEmpty(pageListDto.getPo_cycle()), DwMonthKpiData::getPoCycle, pageListDto.getPo_cycle())
				.eq(!StringUtil.isEmpty(pageListDto.getCl_opc()), DwMonthKpiData::getClOpc, pageListDto.getCl_opc())
				.eq(!StringUtil.isEmpty(pageListDto.getM_floor_eff()), DwMonthKpiData::getMFloorEff, pageListDto.getM_floor_eff())
				.eq(!StringUtil.isEmpty(pageListDto.getCl_pcr()), DwMonthKpiData::getClPcr, pageListDto.getCl_pcr())
				.eq(!StringUtil.isEmpty(pageListDto.getMf_cycle()), DwMonthKpiData::getMfCycle, pageListDto.getMf_cycle())
				.eq(!StringUtil.isEmpty(pageListDto.getPoq_rate()), DwMonthKpiData::getPoqRate, pageListDto.getPoq_rate())
				.eq(!StringUtil.isEmpty(pageListDto.getQp_rate()), DwMonthKpiData::getQpRate, pageListDto.getQp_rate())
				.eq(!StringUtil.isEmpty(pageListDto.getCl_asr()), DwMonthKpiData::getClAsr, pageListDto.getCl_asr())
				.eq(!StringUtil.isEmpty(pageListDto.getCl_otd()), DwMonthKpiData::getClOtd, pageListDto.getCl_otd())
				.eq(!StringUtil.isEmpty(pageListDto.getCl_mon_sgr()), DwMonthKpiData::getClMonSgr, pageListDto.getCl_mon_sgr())
				.eq(!StringUtil.isEmpty(pageListDto.getCl_yoy_sgr()), DwMonthKpiData::getClYoySgr, pageListDto.getCl_yoy_sgr())
				.eq(!StringUtil.isEmpty(pageListDto.getCl_gpm()), DwMonthKpiData::getClGpm, pageListDto.getCl_gpm())
				.eq(!StringUtil.isEmpty(pageListDto.getCl_price()), DwMonthKpiData::getClPrice, pageListDto.getCl_price())
				.eq(!StringUtil.isEmpty(pageListDto.getCl_ftd()), DwMonthKpiData::getClFtd, pageListDto.getCl_ftd())
				.ge(!StringUtil.isEmpty(pageListDto.getCreate_date_Start()), DwMonthKpiData::getCreateDate, pageListDto.getCreate_date_Start())
				.le(!StringUtil.isEmpty(pageListDto.getCreate_date_End()), DwMonthKpiData::getCreateDate, pageListDto.getCreate_date_End())
				.like(!StringUtil.isEmpty(pageListDto.getCreater()), DwMonthKpiData::getCreater, pageListDto.getCreater())
				.like(!StringUtil.isEmpty(pageListDto.getUpdater()), DwMonthKpiData::getUpdater, pageListDto.getUpdater());
		return this.page(ConventPage.getPage(pageListDto), wrapper);
	}

	@Override
	public Integer addDwMonthKpiData(DwMonthKpiData dwMonthKpiData) {
		boolean isSuccess = this.save(dwMonthKpiData);
		return isSuccess ? dwMonthKpiData.getId() : null;
	}

	@Override
	public boolean updateDwMonthKpiData(Integer id, DwMonthKpiData dwMonthKpiData) {
		dwMonthKpiData.setId(id);
		return this.updateById(dwMonthKpiData);
	}

	public boolean delete(String ids) {
		List<String> idList = Func.toStrList(ids);
		if (this.removeByIds(idList)) {
			return true;
		}
		return false;
	}

}